<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        h3{
            height: 500px;
        }
    </style>
</head>
<body>
    <h3>hhh</h3>
    <h3>hhh</h3>
    <h3>hhh</h3>
    <h3>hhh</h3>
    <h3>hhh</h3>
    <h3>hhh</h3>
    <h3>hhh</h3>

    <script>
        //防抖定义：对于短时间内触发频率非常高的事件，而实际情况不需要的情况下，
        //通过添加时间期限，使事件函数在一定时间内之执行一次

        function debounce(fn, delay){
            //闭包形式
            var timer = null;
            return function(){
                //200ms内没有在此触发就执行函数，200ms内再次触发则清楚计时器，重新计时
                if(timer){
                    clearTimeout(timer);
                }
                timer = setTimeout(fn, delay);
            }
        }
        //滚动事件
        window.onscroll = debounce(scrollHandle, 200);
        
        function scrollHandle(){
            var scrollTop = document.documentElement.scrollTop;
            console.log('滚动条位置'+scrollTop);
        }
    </script>
</body>
</html>